﻿#define  _CRT_SECURE_NO_WARNINGS 1
//小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个，
//小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏，
//请返回 小A 猜对了几次？
//
//输入的guess数组为 小A 每次的猜测，answer数组为 小B 每次的选择
//。guess和answer的长度都等于3。
//int game(int* guess, int guessSize, int* answer, int answerSize)
//{
//    int i = 0;
//    int count = 0;
//    for (i = 0; i < guessSize; i++)
//    {
//        if (guess[i] == answer[i])
//        {
//            count++;
//        }
//
//    }
//
//    return count;
//}


//int Max(int* candies, int n, int m, int t)
//{
//    int i = 0;
//    for (i = 0; i < m; i++)
//    {
//        if (n + t < candies[i])
//        {
//            return 0;
//        }
//    }
//    return 1;
//}
//bool* kidsWithCandies(int* candies, int candiesSize, int extraCandies, int* returnSize)
//{
//    bool* str = (bool*)malloc(5 * candiesSize * sizeof(bool));
//    int i = 0;
//    int j = 0;
//    for (i = 0; i < candiesSize; i++)
//    {
//        if (Max(candies, candies[i], candiesSize, extraCandies) == 1)
//        {
//            bool[j++] = 't';
//            bool[j++] = 'r';
//            bool[j++] = 'u';
//            bool[j++] = 'e';
//        }
//        else
//        {
//            bool[j++] = 'f';
//            bool[j++] = 'a';
//            bool[j++] = 'l';
//            bool[j++] = 's';
//            bool[j++] = 'e';
//        }
//    }
//    bool[j] = '\0';
//    *returnSize = candiesSize;
//    return str;
//}


//给你一个整数数组 nums 。
//
//如果一组数字(i, j) 满足 nums[i] == nums[j] 且 i < j ，
//	就可以认为这是一组 好数对 。
//
//	返回好数对的数目。
//
//
//
//	示例 1：
//
//	输入：nums = [1, 2, 3, 1, 1, 3]
//	输出：4
//
//	解释：有 4 组好数对，分别是(0, 3), (0, 4), (3, 4), (2, 5) ，
//	下标从 0 开始

//
//int numIdenticalPairs(int* nums, int numsSize)
//{
//    int count = 0;
//    int i = 0;
//    int j = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        for (j = i + 1; j < numsSize; j++)
//        {
//            if (nums[i] == nums[j])
//            {
//                count++;
//            }
//
//
//        }
//
//    }
//    return count;
//
//
//}
//
//
//
//

//
//给你一个字符串 jewels 代表石头中宝石的类型，
//
//另有一个字符串 stones 代表你拥有的石头。 
//stones 中每个字符代表了一种你拥有的石头的类型，
//你想知道你拥有的石头中有多少是宝石。
//
//字母区分大小写，因此 "a" 和 "A" 是不同类型的石头。
//
//int numJewelsInStones(char* jewels, char* stones)
//{
//    int count = 0;
//    int i = 0;
//    int j = 0;
//    while (stones[i])
//    {
//        j = 0;
//        while (jewels[j])
//        {
//            if (stones[i] == jewels[j])
//            {
//                count++;
//            }
//            j++;
//        }
//        i++;
//    }
//    return count;
//}




//给你一个由小写英文字母组成的字符串 s ，请你找出并返回第一个出现 两次 的字母。
//注意：
//如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前
//，则认为字母 a 在字母 b 之前出现两次。
//s 包含至少一个出现两次的字母。

//char repeatedCharacter(char* s)
//{
//    char tmp = { 0 };
//    int i = 0;
//    int j = 0;
//    int min = 100;
//    for (i = 0; s[i]; i++)
//    {
//        for (j = i + 1; s[j]; j++)
//        {
//            if (s[i] == s[j] && j < min)
//            {
//                min = j;
//                tmp = s[i];
//            }
//
//        }
//    }
//    return tmp;
//}



//全字母句 指包含英语字母表中每个字母至少一次的句子。
//
//给你一个仅由小写英文字母组成的字符串 sentence ，
// 请你判断 sentence 是否为 全字母句 。
//
//如果是，返回 true ；否则，返回 false 。
//
//示例 1：
//
//输入：sentence = "thequickbrownfoxjumpsoverthelazydog"
//输出：true
//解释：sentence 包含英语字母表中每个字母至少一次。
//示例 2：
//
//输入：sentence = "leetcode"
//输出：false


//
//bool checkIfPangram(char* sentence)
//{
//    int i = 0;
//    bool c = { 0 };
//    char arr[26] = { 0 };
//    for (i = 0; i < 26; i++)
//    {
//        arr[i] = 'a' + i;
//    }
//    int j = 0;
//    while (sentence[j])
//    {
//        for (i = 0; i < 26; i++)
//        {
//            if (sentence[j] == arr[i])
//            {
//                arr[i] = '0';
//            }
//        }
//        j++;
//    }
//
//    for (i = 0; i < 26; i++)
//    {
//        if (arr[i] != '0')
//        {
//            c = 'false';
//            return c;
//        }
//    }
//    c = 'true';
//    return c;
//}


//
//给你一个 m x n 的整数网格 accounts ，
//其中 accounts[i][j] 是第 i​​​​​​​​​​​​ 位客户在第 j 家银行托管的资产数量。
//返回最富有客户所拥有的 资产总量 。
//
//客户的 资产总量 就是他们在各家银行托管的资产数量之和。
//最富有客户就是 资产总量 最大的客户。
//
//int maximumWealth(int** accounts, int accountsSize, int* accountsColSize)
//{
//    int max = 0;
//    int i = 0;
//    int j = 0;
//    int sum = 0;
//    for (i = 0; i < accountsSize; i++)
//    {
//        sum = 0;
//        for (j = 0; j < *accountsColSize; j++)
//        {
//            sum += accounts[i][j];
//            if (sum > max)
//            {
//                max = sum;
//            }
//        }
//    }
//    return max;
//}


//
//
//给你一个 m x n 大小的矩阵 grid ，由若干正整数组成。
//
//执行下述操作，直到 grid 变为空矩阵：
//
//从每一行删除值最大的元素。如果存在多个这样的值，删除其中任何一个。
//将删除元素中的最大值与答案相加。
//注意 每执行一次操作，矩阵中列的数据就会减 1 。
//
//返回执行上述操作后的答案。


//
//给你一个正方形矩阵 mat，请你返回矩阵对角线元素的和。
//
//请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。

//
//int diagonalSum(int** mat, int matSize, int* matColSize)
//{
//    int i = 0;
//    int j = 0;
//    int sum = 0;
//    for (i = 0; i < matSize; i++)
//    {
//        for (j = 0; j < matSize; j++)
//        {
//            if (i == j || i + j == matSize - 1)
//            {
//                sum += mat[i][j];
//            }
//        }
//    }
//
//    return sum;
//}

